package top.chmin.project.cloud.common.code.template.auto;

// field import auto
// #bind.field.id#

import top.chmin.project.cloud.common.entity.*;

/**
 * chmin
 * 2023-12-27 19:56:45
 * cloud-builder
 */
public class CodeTemplateFPC extends PreCondition {

    public CodeTemplateFPC() {
    }

    public CodeTemplateFPC(CodeTemplateFPC parent) {
        super(parent);
    }

    public CodeTemplateFPC forDelete() {
        type = "DELETE";
        return this;
    }

    public CodeTemplateFPC forCount() {
        type = "COUNT";
        return this;
    }

    public CodeTemplateFPC forDistinct() {
        type = "DISTINCT";
        return this;
    }

    public CodeTemplateFPC limit(int limit) {
        super.limit = limit;
        return this;
    }

    public CodeTemplateFPC sub() {
        return new CodeTemplateFPC(this);
    }

    public CodeTemplateFPC complete(boolean and) {
        finish(and);
        return parent == null ? this : (CodeTemplateFPC) parent;
    }

    public Condition toCondition() {
        return toCondition(CodeTemplate.class, "cm_code_template");
    }

    // field fpc auto
// #bind.field.id#
    public Id id() {
        return new Id();
    }

    // #bind.field.createBy#
    public CreateBy createBy() {
        return new CreateBy();
    }
// $bind.field.id$

    // #bind.field.updateBy#
    public UpdateBy updateBy() {
        return new UpdateBy();
    }

    // #bind.field.createTime#
    public CreateTime createTime() {
        return new CreateTime();
    }
// $bind.field.createBy$

    // #bind.field.updateTime#
    public UpdateTime updateTime() {
        return new UpdateTime();
    }

    // #bind.field.codeName#
    public CodeName codeName() {
        return new CodeName();
    }
// $bind.field.updateBy$

    // #bind.field.prefix#
    public Prefix prefix() {
        return new Prefix();
    }

    // #bind.field.codeDateTimeFormat#
    public CodeDateTimeFormat codeDateTimeFormat() {
        return new CodeDateTimeFormat();
    }
// $bind.field.createTime$

    // #bind.field.initValue#
    public InitValue initValue() {
        return new InitValue();
    }

    // #bind.field.minStep#
    public MinStep minStep() {
        return new MinStep();
    }
// $bind.field.updateTime$

    // #bind.field.maxStep#
    public MaxStep maxStep() {
        return new MaxStep();
    }

    // #bind.field.fixLength#
    public FixLength fixLength() {
        return new FixLength();
    }
// $bind.field.codeName$

    public class Id extends LongFPCField<CodeTemplateFPC> {
        private Id() {
            super(CodeTemplateFPC.this, "id");
        }
    }

    public class CreateBy extends StringFPCField<CodeTemplateFPC> {
        private CreateBy() {
            super(CodeTemplateFPC.this, "create_by");
        }
    }
// $bind.field.prefix$

    public class UpdateBy extends StringFPCField<CodeTemplateFPC> {
        private UpdateBy() {
            super(CodeTemplateFPC.this, "update_by");
        }
    }

    public class CreateTime extends LocalDateTimeFPCField<CodeTemplateFPC> {
        private CreateTime() {
            super(CodeTemplateFPC.this, "create_time");
        }
    }
// $bind.field.codeDateTimeFormat$

    public class UpdateTime extends LocalDateTimeFPCField<CodeTemplateFPC> {
        private UpdateTime() {
            super(CodeTemplateFPC.this, "update_time");
        }
    }

    public class CodeName extends StringFPCField<CodeTemplateFPC> {
        private CodeName() {
            super(CodeTemplateFPC.this, "code_name");
        }
    }
// $bind.field.initValue$

    public class Prefix extends StringFPCField<CodeTemplateFPC> {
        private Prefix() {
            super(CodeTemplateFPC.this, "prefix");
        }
    }

    public class CodeDateTimeFormat extends StringFPCField<CodeTemplateFPC> {
        private CodeDateTimeFormat() {
            super(CodeTemplateFPC.this, "code_date_time_format");
        }
    }
// $bind.field.minStep$

    public class InitValue extends IntegerFPCField<CodeTemplateFPC> {
        private InitValue() {
            super(CodeTemplateFPC.this, "init_value");
        }
    }

    public class MinStep extends IntegerFPCField<CodeTemplateFPC> {
        private MinStep() {
            super(CodeTemplateFPC.this, "min_step");
        }
    }
// $bind.field.maxStep$

    public class MaxStep extends IntegerFPCField<CodeTemplateFPC> {
        private MaxStep() {
            super(CodeTemplateFPC.this, "max_step");
        }
    }

    public class FixLength extends IntegerFPCField<CodeTemplateFPC> {
        private FixLength() {
            super(CodeTemplateFPC.this, "fix_length");
        }
    }
// $bind.field.fixLength$

}
